# JavaScript API

Rsbuild provides a comprehensive JavaScript API for developers to build higher-level tools or frameworks on top of Rsbuild.

Rsbuild's JavaScript API can be used in Node.js, Deno, or Bun.

## Getting started

This basic example demonstrates how to use the Rsbuild JavaScript API.

### 1. Install Rsbuild

Install the `@rsbuild/core` package:

import { PackageManagerTabs } from '@theme';

<PackageManagerTabs command="add @rsbuild/core -D" />

### 2. Create an Rsbuild instance

Call the [createRsbuild](/api/javascript-api/core#creatersbuild) method to create an Rsbuild instance:

```ts
import { createRsbuild } from '@rsbuild/core';

const rsbuild = await createRsbuild();
```

The `createRsbuild` method accepts various options. Learn more in the [API - createRsbuild](/api/javascript-api/core#creatersbuild) documentation.

### 3. Call Rsbuild instance methods

The Rsbuild instance provides several methods for different scenarios.

For local development, use the [rsbuild.startDevServer](/api/javascript-api/instance#rsbuildstartdevserver) method to start a local dev server:

```ts
await rsbuild.startDevServer();
```

Once the dev server starts successfully, these logs will appear:

```
  ➜ Local:    http://localhost:3000
  ➜ Network:  http://192.168.0.1:3000
```

For production deployment, use the [rsbuild.build](/api/javascript-api/instance#rsbuildbuild) method to build production outputs:

```ts
await rsbuild.build();
```

> For more information about Rsbuild instance methods, see the [Rsbuild Instance](/api/javascript-api/instance) documentation.

These three steps cover the basic usage of Rsbuild. Next, you can customize the build process with Rsbuild plugins and configurations.

## Export formats

Rsbuild supports both ES Modules and CommonJS formats:

```js title="index.mjs"
import { createRsbuild } from '@rsbuild/core';
```

```js title="index.cjs"
const { createRsbuild } = require('@rsbuild/core');
```

> We recommend using ES modules, which align better with community standards.
